home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 7: Sunsite
/
Linux Cubed Series 7 - Sunsite Vol 1.iso
/
system
/
shells
/
scsh-0.4
/
scsh-0
/
scsh-0.4.2
/
debug
/
describe.scm
< prev
next >
Wrap
Text File
|
1995-10-13
|
1KB
|
42 lines
; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees. See file COPYING.
(define (describe x)
(if (and (stob? x)
(< (stob-type x) least-b-vector-type))
(let ((tag (string-append (number->string x) ": "))
(len (bytes->cells (stob-length-in-bytes x))))
(do ((i -1 (+ i 1)))
((= i len))
(describe-1 (stob-ref x i) tag)))
(describe-1 x "")))
(define (describe-1 x addr)
(cond ((fixnum? x) (display " fixnum ") (write (extract-fixnum x)))
((header? x)
(display addr)
(if (immutable-header? x)
(display " immutable"))
(display " header ")
(let ((type (header-type x)))
(if (< type stob-count)
(write (vector-ref stob type))
(write type)))
(display " ")
(write (header-length-in-bytes x)))
((immediate? x)
(cond (else
(display " immediate ")
(let ((type (immediate-type x)))
(if (< type imm-count)
(write (vector-ref imm type))
(write type)))
(display " ")
(write (immediate-info x)))))
((stob? x)
(display " stob ") (write x))
(else (display " ? ") (write x)))
(newline))